home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / 3DTOSHI2.ZIP / mpgfx / source / lgfxvgaw.asm < prev    next >
Encoding:
Assembly Source File  |  1995-12-08  |  1.1 KB  |  68 lines

  1.  
  2. ; wvga256.asm
  3. ;
  4. ; Copyright (c) 1995 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. PUBLIC SetVGASelector_, VGACopy256To256_
  7.  
  8. .DATA
  9.   SrcWd DD 0
  10.   SrcHt DD 0
  11.  
  12. .CODE
  13. .386
  14.  
  15. ; VOID SetVGASelector ( SHORT Selector )
  16. ; EAX = Selector
  17.  
  18. SetVGASelector_ PROC
  19.   ret 
  20. SetVGASelector_ ENDP
  21.  
  22.  
  23. ; VOID VGACopy256To256 ( BYTE *Src, LONG AddSrc, LONG SrcWd, LONg SrcHt,
  24. ;                        LONG DestCx, LONG DestCy );
  25. ;
  26. ; EAX = Src, EDX = AddSrc, EBX = SrcWd, ECX = SrcHt
  27. VGACopy256To256_ PROC C, DestCx:DWORD,DestCy:DWORD
  28.   push EDI
  29.   push ESI
  30.  
  31.   mov  ESI, EAX   ; ESI = Src
  32.   mov  SrcWd, EBX
  33.   mov  SrcHt, ECX
  34.   
  35.   sub  EDX, EBX
  36.   mov  EBX, EDX   ; EBX = AddSrc - SrcWd
  37.  
  38.   mov  EDI, 0A0000h
  39.   mov  EAX, DestCy
  40.   mov  EDX, 320
  41.   mul  EDX  
  42.   add  EAX, DestCx
  43.   add  EDI, EAX
  44.   
  45.   mov  EDX, 320
  46.   sub  EDX, SrcWd
  47.   cld
  48.  
  49.   Copy256OutLoop :
  50.     mov ECX, SrcWd
  51.     mov EAX, ECX
  52.     and EAX, 03h
  53.     shr ECX, 2
  54.     rep movsd
  55.     mov ECX, EAX
  56.     rep movsb
  57.     add ESI, EBX
  58.     add EDI, EDX
  59.     dec SrcHt
  60.     jnz Copy256OutLoop
  61.  
  62.   pop  ESI
  63.   pop  EDI
  64.   ret
  65. VGACopy256To256_ ENDP
  66.  
  67. END
  68.